package com.xmhmyh.generalframework.project.systool.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xmhmyh.generalframework.common.BaseIService;
import com.xmhmyh.generalframework.framework.security.LoginUser;
import com.xmhmyh.generalframework.project.sys.entity.User;
import com.xmhmyh.generalframework.project.systool.dto.TableDTO;
import com.xmhmyh.generalframework.project.systool.entity.Table;

import java.io.StringWriter;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 代码生成业务表 服务类
 * </p>
 *
 * @author yuding
 * @since 2020-07-31
 */
public interface ITableService extends BaseIService<Table> {

    /**
     * @Author: 于丁
     * @Description: 导入表格
     * @DateTime: 2020/8/5 9:40 下午
     * @Params: user 用户表数据
     * tableNameList 列表数据
     * @Return
     */
    void importTableHandler(User user, List<TableDTO> tableNameList);


    /**
     * @Author: 于丁
     * @Description: 生成代码
     * @DateTime: 2020/8/6 2:03 下午
     * @Params:
     * @Return
     */
    byte[] genHandler(Long tableId);

    /**
     * @Author: 于丁
     * @Description: 预览代码
     * @DateTime: 2020/8/6 4:24 下午
     * @Params: * @param: tableId  表格ID
     * @Return {@link null}
     */
    Map<String, String> previewCode(Long tableId);

    /**
     * @Author: 于丁
     * @Description: 删除生成表及表列数据
     * @DateTime: 2020/8/6 6:47 下午
     * @Params: * @param: tableId 生成表ID
     * @Return {@link null}
     */
    void delHandler(Long tableId);
}
